/** layui-v2.4.5 MIT License By https://www.layui.com */
!(function () {
    "use strict";
    var e = window.layui && layui.define,
        t = {
            getPath: (function () {
                var e = document.currentScript
                    ? document.currentScript.src
                    : (function () {
                          for (var e, t = document.scripts, n = t.length - 1, a = n; a > 0; a--)
                              if ("interactive" === t[a].readyState) {
                                  e = t[a].src;
                                  break;
                              }
                          return e || t[n].src;
                      })();
                return e.substring(0, e.lastIndexOf("/") + 1);
            })(),
            getStyle: function (e, t) {
                var n = e.currentStyle ? e.currentStyle : window.getComputedStyle(e, null);
                return n[n.getPropertyValue ? "getPropertyValue" : "getAttribute"](t);
            },
            link: function (e, a, i) {
                if (n.path) {
                    var r = document.getElementsByTagName("head")[0],
                        o = document.createElement("link");
                    "string" == typeof a && (i = a);
                    var s = (i || e).replace(/\.|\//g, ""),
                        l = "layuicss-" + s,
                        d = 0;
                    (o.rel = "stylesheet"),
                        (o.href = n.path + e),
                        (o.id = l),
                        document.getElementById(l) || r.appendChild(o),
                        "function" == typeof a &&
                            !(function c() {
                                return ++d > 80
                                    ? window.console && console.error("laydate.css: Invalid")
                                    : void (1989 === parseInt(t.getStyle(document.getElementById(l), "width")) ? a() : setTimeout(c, 100));
                            })();
                }
            },
        },
        n = {
            v: "5.0.9",
            config: {},
            index: window.laydate && window.laydate.v ? 1e5 : 0,
            path: t.getPath,
            set: function (e) {
                var t = this;
                return (t.config = w.extend({}, t.config, e)), t;
            },
            ready: function (a) {
                var i = "laydate",
                    r = "",
                    o = (e ? "modules/laydate/" : "theme/") + "default/laydate.css?v=" + n.v + r;
                return e ? layui.addcss(o, a, i) : t.link(o, a, i), this;
            },
        },
        a = function () {
            var e = this;
            return {
                hint: function (t) {
                    e.hint.call(e, t);
                },
                config: e.config,
            };
        },
        i = "laydate",
        r = ".layui-laydate",
        o = "layui-this",
        s = "laydate-disabled",
        l = "开始日期超出了结束日期<br>建议重新选择",
        d = [100, 2e5],
        c = "layui-laydate-static",
        m = "layui-laydate-list",
        u = "laydate-selected",
        h = "layui-laydate-hint",
        y = "laydate-day-prev",
        f = "laydate-day-next",
        p = "layui-laydate-footer",
        g = ".laydate-btns-confirm",
        v = "laydate-time-text",
        D = ".laydate-btns-time",
        T = function (e) {
            var t = this;
            (t.index = ++n.index),
                (t.config = w.extend({}, t.config, n.config, e)),
                n.ready(function () {
                    t.init();
                });
        },
        w = function (e) {
            return new C(e);
        },
        C = function (e) {
            for (var t = 0, n = "object" == typeof e ? [e] : ((this.selector = e), document.querySelectorAll(e || null)); t < n.length; t++) this.push(n[t]);
        };
    (C.prototype = []),
        (C.prototype.constructor = C),
        (w.extend = function () {
            var e = 1,
                t = arguments,
                n = function (e, t) {
                    e = e || (t.constructor === Array ? [] : {});
                    for (var a in t) e[a] = t[a] && t[a].constructor === Object ? n(e[a], t[a]) : t[a];
                    return e;
                };
            for (t[0] = "object" == typeof t[0] ? t[0] : {}; e < t.length; e++) "object" == typeof t[e] && n(t[0], t[e]);
            return t[0];
        }),
        (w.ie = (function () {
            var e = navigator.userAgent.toLowerCase();
            return !!(window.ActiveXObject || "ActiveXObject" in window) && ((e.match(/msie\s(\d+)/) || [])[1] || "11");
        })()),
        (w.stope = function (e) {
            (e = e || window.event), e.stopPropagation ? e.stopPropagation() : (e.cancelBubble = !0);
        }),
        (w.each = function (e, t) {
            var n,
                a = this;
            if ("function" != typeof t) return a;
            if (((e = e || []), e.constructor === Object)) {
                for (n in e) if (t.call(e[n], n, e[n])) break;
            } else for (n = 0; n < e.length && !t.call(e[n], n, e[n]); n++);
            return a;
        }),
        (w.digit = function (e, t, n) {
            var a = "";
            (e = String(e)), (t = t || 2);
            for (var i = e.length; i < t; i++) a += "0";
            return e < Math.pow(10, t) ? a + (0 | e) : e;
        }),
        (w.elem = function (e, t) {
            var n = document.createElement(e);
            return (
                w.each(t || {}, function (e, t) {
                    n.setAttribute(e, t);
                }),
                n
            );
        }),
        (C.addStr = function (e, t) {
            return (
                (e = e.replace(/\s+/, " ")),
                (t = t.replace(/\s+/, " ").split(" ")),
                w.each(t, function (t, n) {
                    new RegExp("\\b" + n + "\\b").test(e) || (e = e + " " + n);
                }),
                e.replace(/^\s|\s$/, "")
            );
        }),
        (C.removeStr = function (e, t) {
            return (
                (e = e.replace(/\s+/, " ")),
                (t = t.replace(/\s+/, " ").split(" ")),
                w.each(t, function (t, n) {
                    var a = new RegExp("\\b" + n + "\\b");
                    a.test(e) && (e = e.replace(a, ""));
                }),
                e.replace(/\s+/, " ").replace(/^\s|\s$/, "")
            );
        }),
        (C.prototype.find = function (e) {
            var t = this,
                n = 0,
                a = [],
                i = "object" == typeof e;
            return (
                this.each(function (r, o) {
                    for (var s = i ? [e] : o.querySelectorAll(e || null); n < s.length; n++) a.push(s[n]);
                    t.shift();
                }),
                i || (t.selector = (t.selector ? t.selector + " " : "") + e),
                w.each(a, function (e, n) {
                    t.push(n);
                }),
                t
            );
        }),
        (C.prototype.each = function (e) {
            return w.each.call(this, this, e);
        }),
        (C.prototype.addClass = function (e, t) {
            return this.each(function (n, a) {
                a.className = C[t ? "removeStr" : "addStr"](a.className, e);
            });
        }),
        (C.prototype.removeClass = function (e) {
            return this.addClass(e, !0);
        }),
        (C.prototype.hasClass = function (e) {
            var t = !1;
            return (
                this.each(function (n, a) {
                    new RegExp("\\b" + e + "\\b").test(a.className) && (t = !0);
                }),
                t
            );
        }),
        (C.prototype.attr = function (e, t) {
            var n = this;
            return void 0 === t
                ? (function () {
                      if (n.length > 0) return n[0].getAttribute(e);
                  })()
                : n.each(function (n, a) {
                      a.setAttribute(e, t);
                  });
        }),
        (C.prototype.removeAttr = function (e) {
            return this.each(function (t, n) {
                n.removeAttribute(e);
            });
        }),
        (C.prototype.html = function (e) {
            return this.each(function (t, n) {
                n.innerHTML = e;
            });
        }),
        (C.prototype.val = function (e) {
            return this.each(function (t, n) {
                n.value = e;
            });
        }),
        (C.prototype.append = function (e) {
            return this.each(function (t, n) {
                "object" == typeof e ? n.appendChild(e) : (n.innerHTML = n.innerHTML + e);
            });
        }),
        (C.prototype.remove = function (e) {
            return this.each(function (t, n) {
                e ? n.removeChild(e) : n.parentNode.removeChild(n);
            });
        }),
        (C.prototype.on = function (e, t) {
            return this.each(function (n, a) {
                a.attachEvent
                    ? a.attachEvent("on" + e, function (e) {
                          (e.target = e.srcElement), t.call(a, e);
                      })
                    : a.addEventListener(e, t, !1);
            });
        }),
        (C.prototype.off = function (e, t) {
            return this.each(function (n, a) {
                a.detachEvent ? a.detachEvent("on" + e, t) : a.removeEventListener(e, t, !1);
            });
        }),
        (T.isLeapYear = function (e) {
            return (e % 4 === 0 && e % 100 !== 0) || e % 400 === 0;
        }),
        (T.prototype.config = {
            type: "date",
            range: !1,
            format: "yyyy-MM-dd",
            value: null,
            isInitValue: !0,
            min: "1900-1-1",
            max: "2099-12-31",
            trigger: "focus",
            show: !1,
            showBottom: !0,
            btns: ["clear", "now", "confirm"],
            lang: "cn",
            theme: "default",
            position: null,
            calendar: !1,
            mark: {},
            zIndex: null,
            done: null,
            change: null,
        }),
        (T.prototype.lang = function () {
            var e = this,
                t = e.config,
                n = {
                    cn: {
                        weeks: ["日", "一", "二", "三", "四", "五", "六"],
                        time: ["时", "分", "秒"],
                        timeTips: "选择时间",
                        startTime: "开始时间",
                        endTime: "结束时间",
                        dateTips: "返回日期",
                        month: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"],
                        tools: { confirm: "确定", clear: "清空", now: "现在" },
                    },
                    en: {
                        weeks: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
                        time: ["Hours", "Minutes", "Seconds"],
                        timeTips: "Select Time",
                        startTime: "Start Time",
                        endTime: "End Time",
                        dateTips: "Select Date",
                        month: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
                        tools: { confirm: "Confirm", clear: "Clear", now: "Now" },
                    },
                };
            return n[t.lang] || n.cn;
        }),
        (T.prototype.init = function () {
            var e = this,
                t = e.config,
                n = "yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",
                a = "static" === t.position,
                i = { year: "yyyy", month: "yyyy-MM", date: "yyyy-MM-dd", time: "HH:mm:ss", datetime: "yyyy-MM-dd HH:mm:ss" };
            (t.elem = w(t.elem)),
                (t.eventElem = w(t.eventElem)),
                t.elem[0] &&
                    (t.range === !0 && (t.range = "-"),
                    t.format === i.date && (t.format = i[t.type]),
                    (e.format = t.format.match(new RegExp(n + "|.", "g")) || []),
                    (e.EXP_IF = ""),
                    (e.EXP_SPLIT = ""),
                    w.each(e.format, function (t, a) {
                        var i = new RegExp(n).test(a)
                            ? "\\d{" +
                              (function () {
                                  return new RegExp(n).test(e.format[0 === t ? t + 1 : t - 1] || "")
                                      ? /^yyyy|y$/.test(a)
                                          ? 4
                                          : a.length
                                      : /^yyyy$/.test(a)
                                      ? "1,4"
                                      : /^y$/.test(a)
                                      ? "1,308"
                                      : "1,2";
                              })() +
                              "}"
                            : "\\" + a;
                        (e.EXP_IF = e.EXP_IF + i), (e.EXP_SPLIT = e.EXP_SPLIT + "(" + i + ")");
                    }),
                    (e.EXP_IF = new RegExp("^" + (t.range ? e.EXP_IF + "\\s\\" + t.range + "\\s" + e.EXP_IF : e.EXP_IF) + "$")),
                    (e.EXP_SPLIT = new RegExp("^" + e.EXP_SPLIT + "$", "")),
                    e.isInput(t.elem[0]) || ("focus" === t.trigger && (t.trigger = "click")),
                    t.elem.attr("lay-key") || (t.elem.attr("lay-key", e.index), t.eventElem.attr("lay-key", e.index)),
                    (t.mark = w.extend(
                        {},
                        t.calendar && "cn" === t.lang
                            ? {
                                  "0-1-1": "元旦",
                                  "0-2-14": "情人",
                                  "0-3-8": "妇女",
                                  "0-3-12": "植树",
                                  "0-4-1": "愚人",
                                  "0-5-1": "劳动",
                                  "0-5-4": "青年",
                                  "0-6-1": "儿童",
                                  "0-9-10": "教师",
                                  "0-9-18": "国耻",
                                  "0-10-1": "国庆",
                                  "0-12-25": "圣诞",
                              }
                            : {},
                        t.mark
                    )),
                    w.each(["min", "max"], function (e, n) {
                        var a = [],
                            i = [];
                        if ("number" == typeof t[n]) {
                            var r = t[n],
                                o = new Date().getTime(),
                                s = 864e5,
                                l = new Date(r ? (r < s ? o + r * s : r) : o);
                            (a = [l.getFullYear(), l.getMonth() + 1, l.getDate()]), r < s || (i = [l.getHours(), l.getMinutes(), l.getSeconds()]);
                        } else (a = (t[n].match(/\d+-\d+-\d+/) || [""])[0].split("-")), (i = (t[n].match(/\d+:\d+:\d+/) || [""])[0].split(":"));
                        t[n] = {
                            year: 0 | a[0] || new Date().getFullYear(),
                            month: a[1] ? (0 | a[1]) - 1 : new Date().getMonth(),
                            date: 0 | a[2] || new Date().getDate(),
                            hours: 0 | i[0],
                            minutes: 0 | i[1],
                            seconds: 0 | i[2],
                        };
                    }),
                    (e.elemID = "layui-laydate" + t.elem.attr("lay-key")),
                    (t.show || a) && e.render(),
                    a || e.events(),
                    t.value && t.isInitValue && (t.value.constructor === Date ? e.setValue(e.parse(0, e.systemDate(t.value))) : e.setValue(t.value)));
        }),
        (T.prototype.render = function () {
            var e = this,
                t = e.config,
                n = e.lang(),
                a = "static" === t.position,
                i = (e.elem = w.elem("div", {
                    id: e.elemID,
                    class: [
                        "layui-laydate",
                        t.range ? " layui-laydate-range" : "",
                        a ? " " + c : "",
                        t.theme && "default" !== t.theme && !/^#/.test(t.theme) ? " laydate-theme-" + t.theme : "",
                    ].join(""),
                })),
                r = (e.elemMain = []),
                o = (e.elemHeader = []),
                s = (e.elemCont = []),
                l = (e.table = []),
                d = (e.footer = w.elem("div", { class: p }));
            if (
                (t.zIndex && (i.style.zIndex = t.zIndex),
                w.each(new Array(2), function (e) {
                    if (!t.range && e > 0) return !0;
                    var a = w.elem("div", { class: "layui-laydate-header" }),
                        i = [
                            (function () {
                                var e = w.elem("i", { class: "layui-icon laydate-icon laydate-prev-y" });
                                return (e.innerHTML = "&#xe65a;"), e;
                            })(),
                            (function () {
                                var e = w.elem("i", { class: "layui-icon laydate-icon laydate-prev-m" });
                                return (e.innerHTML = "&#xe603;"), e;
                            })(),
                            (function () {
                                var e = w.elem("div", { class: "laydate-set-ym" }),
                                    t = w.elem("span"),
                                    n = w.elem("span");
                                return e.appendChild(t), e.appendChild(n), e;
                            })(),
                            (function () {
                                var e = w.elem("i", { class: "layui-icon laydate-icon laydate-next-m" });
                                return (e.innerHTML = "&#xe602;"), e;
                            })(),
                            (function () {
                                var e = w.elem("i", { class: "layui-icon laydate-icon laydate-next-y" });
                                return (e.innerHTML = "&#xe65b;"), e;
                            })(),
                        ],
                        d = w.elem("div", { class: "layui-laydate-content" }),
                        c = w.elem("table"),
                        m = w.elem("thead"),
                        u = w.elem("tr");
                    w.each(i, function (e, t) {
                        a.appendChild(t);
                    }),
                        m.appendChild(u),
                        w.each(new Array(6), function (e) {
                            var t = c.insertRow(0);
                            w.each(new Array(7), function (a) {
                                if (0 === e) {
                                    var i = w.elem("th");
                                    (i.innerHTML = n.weeks[a]), u.appendChild(i);
                                }
                                t.insertCell(a);
                            });
                        }),
                        c.insertBefore(m, c.children[0]),
                        d.appendChild(c),
                        (r[e] = w.elem("div", { class: "layui-laydate-main laydate-main-list-" + e })),
                        r[e].appendChild(a),
                        r[e].appendChild(d),
                        o.push(i),
                        s.push(d),
                        l.push(c);
                }),
                w(d).html(
                    (function () {
                        var e = [],
                            i = [];
                        return (
                            "datetime" === t.type && e.push('<span lay-type="datetime" class="laydate-btns-time">' + n.timeTips + "</span>"),
                            w.each(t.btns, function (e, r) {
                                var o = n.tools[r] || "btn";
                                (t.range && "now" === r) ||
                                    (a && "clear" === r && (o = "cn" === t.lang ? "重置" : "Reset"),
                                    i.push('<span lay-type="' + r + '" class="laydate-btns-' + r + '">' + o + "</span>"));
                            }),
                            e.push('<div class="laydate-footer-btns">' + i.join("") + "</div>"),
                            e.join("")
                        );
                    })()
                ),
                w.each(r, function (e, t) {
                    i.appendChild(t);
                }),
                t.showBottom && i.appendChild(d),
                /^#/.test(t.theme))
            ) {
                var m = w.elem("style"),
                    u = ["#{{id}} .layui-laydate-header{background-color:{{theme}};}", "#{{id}} .layui-this{background-color:{{theme}} !important;}"]
                        .join("")
                        .replace(/{{id}}/g, e.elemID)
                        .replace(/{{theme}}/g, t.theme);
                "styleSheet" in m ? (m.setAttribute("type", "text/css"), (m.styleSheet.cssText = u)) : (m.innerHTML = u), w(i).addClass("laydate-theme-molv"), i.appendChild(m);
            }
            e.remove(T.thisElemDate),
                a ? t.elem.append(i) : (document.body.appendChild(i), e.position()),
                e.checkDate().calendar(),
                e.changeEvent(),
                (T.thisElemDate = e.elemID),
                "function" == typeof t.ready && t.ready(w.extend({}, t.dateTime, { month: t.dateTime.month + 1 }));
        }),
        (T.prototype.remove = function (e) {
            var t = this,
                n = (t.config, w("#" + (e || t.elemID)));
            return (
                n.hasClass(c) ||
                    t.checkDate(function () {
                        n.remove();
                    }),
                t
            );
        }),
        (T.prototype.position = function () {
            var e = this,
                t = e.config,
                n = e.bindElem || t.elem[0],
                a = n.getBoundingClientRect(),
                i = e.elem.offsetWidth,
                r = e.elem.offsetHeight,
                o = function (e) {
                    return (e = e ? "scrollLeft" : "scrollTop"), document.body[e] | document.documentElement[e];
                },
                s = function (e) {
                    return document.documentElement[e ? "clientWidth" : "clientHeight"];
                },
                l = 5,
                d = a.left,
                c = a.bottom;
            d + i + l > s("width") && (d = s("width") - i - l),
                c + r + l > s() && ((c = a.top > r ? a.top - r : s() - r), (c -= 2 * l)),
                t.position && (e.elem.style.position = t.position),
                (e.elem.style.left = d + ("fixed" === t.position ? 0 : o(1)) + "px"),
                (e.elem.style.top = c + ("fixed" === t.position ? 0 : o()) + "px");
        }),
        (T.prototype.hint = function (e) {
            var t = this,
                n = (t.config, w.elem("div", { class: h }));
            t.elem &&
                ((n.innerHTML = e || ""),
                w(t.elem)
                    .find("." + h)
                    .remove(),
                t.elem.appendChild(n),
                clearTimeout(t.hinTimer),
                (t.hinTimer = setTimeout(function () {
                    w(t.elem)
                        .find("." + h)
                        .remove();
                }, 3e3)));
        }),
        (T.prototype.getAsYM = function (e, t, n) {
            return n ? t-- : t++, t < 0 && ((t = 11), e--), t > 11 && ((t = 0), e++), [e, t];
        }),
        (T.prototype.systemDate = function (e) {
            var t = e || new Date();
            return { year: t.getFullYear(), month: t.getMonth(), date: t.getDate(), hours: e ? e.getHours() : 0, minutes: e ? e.getMinutes() : 0, seconds: e ? e.getSeconds() : 0 };
        }),
        (T.prototype.checkDate = function (e) {
            var t,
                a,
                i = this,
                r = (new Date(), i.config),
                o = (r.dateTime = r.dateTime || i.systemDate()),
                s = i.bindElem || r.elem[0],
                l = (i.isInput(s) ? "val" : "html", i.isInput(s) ? s.value : "static" === r.position ? "" : s.innerHTML),
                c = function (e) {
                    e.year > d[1] && ((e.year = d[1]), (a = !0)),
                        e.month > 11 && ((e.month = 11), (a = !0)),
                        e.hours > 23 && ((e.hours = 0), (a = !0)),
                        e.minutes > 59 && ((e.minutes = 0), e.hours++, (a = !0)),
                        e.seconds > 59 && ((e.seconds = 0), e.minutes++, (a = !0)),
                        (t = n.getEndDate(e.month + 1, e.year)),
                        e.date > t && ((e.date = t), (a = !0));
                },
                m = function (e, t, n) {
                    var o = ["startTime", "endTime"];
                    (t = (t.match(i.EXP_SPLIT) || []).slice(1)),
                        (n = n || 0),
                        r.range && (i[o[n]] = i[o[n]] || {}),
                        w.each(i.format, function (s, l) {
                            var c = parseFloat(t[s]);
                            t[s].length < l.length && (a = !0),
                                /yyyy|y/.test(l)
                                    ? (c < d[0] && ((c = d[0]), (a = !0)), (e.year = c))
                                    : /MM|M/.test(l)
                                    ? (c < 1 && ((c = 1), (a = !0)), (e.month = c - 1))
                                    : /dd|d/.test(l)
                                    ? (c < 1 && ((c = 1), (a = !0)), (e.date = c))
                                    : /HH|H/.test(l)
                                    ? (c < 1 && ((c = 0), (a = !0)), (e.hours = c), r.range && (i[o[n]].hours = c))
                                    : /mm|m/.test(l)
                                    ? (c < 1 && ((c = 0), (a = !0)), (e.minutes = c), r.range && (i[o[n]].minutes = c))
                                    : /ss|s/.test(l) && (c < 1 && ((c = 0), (a = !0)), (e.seconds = c), r.range && (i[o[n]].seconds = c));
                        }),
                        c(e);
                };
            return "limit" === e
                ? (c(o), i)
                : ((l = l || r.value),
                  "string" == typeof l && (l = l.replace(/\s+/g, " ").replace(/^\s|\s$/g, "")),
                  i.startState && !i.endState && (delete i.startState, (i.endState = !0)),
                  "string" == typeof l && l
                      ? i.EXP_IF.test(l)
                          ? r.range
                              ? ((l = l.split(" " + r.range + " ")),
                                (i.startDate = i.startDate || i.systemDate()),
                                (i.endDate = i.endDate || i.systemDate()),
                                (r.dateTime = w.extend({}, i.startDate)),
                                w.each([i.startDate, i.endDate], function (e, t) {
                                    m(t, l[e], e);
                                }))
                              : m(o, l)
                          : (i.hint("日期格式不合法<br>必须遵循下述格式：<br>" + (r.range ? r.format + " " + r.range + " " + r.format : r.format) + "<br>已为你重置"), (a = !0))
                      : l && l.constructor === Date
                      ? (r.dateTime = i.systemDate(l))
                      : ((r.dateTime = i.systemDate()), delete i.startState, delete i.endState, delete i.startDate, delete i.endDate, delete i.startTime, delete i.endTime),
                  c(o),
                  a && l && i.setValue(r.range ? (i.endDate ? i.parse() : "") : i.parse()),
                  e && e(),
                  i);
        }),
        (T.prototype.mark = function (e, t) {
            var n,
                a = this,
                i = a.config;
            return (
                w.each(i.mark, function (e, a) {
                    var i = e.split("-");
                    (i[0] != t[0] && 0 != i[0]) || (i[1] != t[1] && 0 != i[1]) || i[2] != t[2] || (n = a || t[2]);
                }),
                n && e.html('<span class="laydate-day-mark">' + n + "</span>"),
                a
            );
        }),
        (T.prototype.limit = function (e, t, n, a) {
            var i,
                r = this,
                o = r.config,
                l = {},
                d = o[n > 41 ? "endDate" : "dateTime"],
                c = w.extend({}, d, t || {});
            return (
                w.each({ now: c, min: o.min, max: o.max }, function (e, t) {
                    l[e] = r
                        .newDate(
                            w.extend(
                                { year: t.year, month: t.month, date: t.date },
                                (function () {
                                    var e = {};
                                    return (
                                        w.each(a, function (n, a) {
                                            e[a] = t[a];
                                        }),
                                        e
                                    );
                                })()
                            )
                        )
                        .getTime();
                }),
                (i = l.now < l.min || l.now > l.max),
                e && e[i ? "addClass" : "removeClass"](s),
                i
            );
        }),
        (T.prototype.calendar = function (e) {
            var t,
                a,
                i,
                r = this,
                s = r.config,
                l = e || s.dateTime,
                c = new Date(),
                m = r.lang(),
                u = "date" !== s.type && "datetime" !== s.type,
                h = e ? 1 : 0,
                y = w(r.table[h]).find("td"),
                f = w(r.elemHeader[h][2]).find("span");
            if (
                (l.year < d[0] && ((l.year = d[0]), r.hint("最低只能支持到公元" + d[0] + "年")),
                l.year > d[1] && ((l.year = d[1]), r.hint("最高只能支持到公元" + d[1] + "年")),
                r.firstDate || (r.firstDate = w.extend({}, l)),
                c.setFullYear(l.year, l.month, 1),
                (t = c.getDay()),
                (a = n.getEndDate(l.month || 12, l.year)),
                (i = n.getEndDate(l.month + 1, l.year)),
                w.each(y, function (e, n) {
                    var d = [l.year, l.month],
                        c = 0;
                    (n = w(n)),
                        n.removeAttr("class"),
                        e < t
                            ? ((c = a - t + e), n.addClass("laydate-day-prev"), (d = r.getAsYM(l.year, l.month, "sub")))
                            : e >= t && e < i + t
                            ? ((c = e - t), s.range || (c + 1 === l.date && n.addClass(o)))
                            : ((c = e - i - t), n.addClass("laydate-day-next"), (d = r.getAsYM(l.year, l.month))),
                        d[1]++,
                        (d[2] = c + 1),
                        n.attr("lay-ymd", d.join("-")).html(d[2]),
                        r.mark(n, d).limit(n, { year: d[0], month: d[1] - 1, date: d[2] }, e);
                }),
                w(f[0]).attr("lay-ym", l.year + "-" + (l.month + 1)),
                w(f[1]).attr("lay-ym", l.year + "-" + (l.month + 1)),
                "cn" === s.lang
                    ? (w(f[0])
                          .attr("lay-type", "year")
                          .html(l.year + "年"),
                      w(f[1])
                          .attr("lay-type", "month")
                          .html(l.month + 1 + "月"))
                    : (w(f[0]).attr("lay-type", "month").html(m.month[l.month]), w(f[1]).attr("lay-type", "year").html(l.year)),
                u &&
                    (s.range &&
                        (e
                            ? (r.endDate = r.endDate || { year: l.year + ("year" === s.type ? 1 : 0), month: l.month + ("month" === s.type ? 0 : -1) })
                            : (r.startDate = r.startDate || { year: l.year, month: l.month }),
                        e &&
                            ((r.listYM = [
                                [r.startDate.year, r.startDate.month + 1],
                                [r.endDate.year, r.endDate.month + 1],
                            ]),
                            r.list(s.type, 0).list(s.type, 1),
                            "time" === s.type ? r.setBtnStatus("时间", w.extend({}, r.systemDate(), r.startTime), w.extend({}, r.systemDate(), r.endTime)) : r.setBtnStatus(!0))),
                    s.range || ((r.listYM = [[l.year, l.month + 1]]), r.list(s.type, 0))),
                s.range && !e)
            ) {
                var p = r.getAsYM(l.year, l.month);
                r.calendar(w.extend({}, l, { year: p[0], month: p[1] }));
            }
            return s.range || r.limit(w(r.footer).find(g), null, 0, ["hours", "minutes", "seconds"]), s.range && e && !u && r.stampRange(), r;
        }),
        (T.prototype.list = function (e, t) {
            var n = this,
                a = n.config,
                i = a.dateTime,
                r = n.lang(),
                l = a.range && "date" !== a.type && "datetime" !== a.type,
                d = w.elem("ul", { class: m + " " + { year: "laydate-year-list", month: "laydate-month-list", time: "laydate-time-list" }[e] }),
                c = n.elemHeader[t],
                u = w(c[2]).find("span"),
                h = n.elemCont[t || 0],
                y = w(h).find("." + m)[0],
                f = "cn" === a.lang,
                p = f ? "年" : "",
                T = n.listYM[t] || {},
                C = ["hours", "minutes", "seconds"],
                x = ["startTime", "endTime"][t];
            if ((T[0] < 1 && (T[0] = 1), "year" === e)) {
                var M,
                    b = (M = T[0] - 7);
                b < 1 && (b = M = 1),
                    w.each(new Array(15), function (e) {
                        var i = w.elem("li", { "lay-ym": M }),
                            r = { year: M };
                        M == T[0] && w(i).addClass(o),
                            (i.innerHTML = M + p),
                            d.appendChild(i),
                            M < n.firstDate.year ? ((r.month = a.min.month), (r.date = a.min.date)) : M >= n.firstDate.year && ((r.month = a.max.month), (r.date = a.max.date)),
                            n.limit(w(i), r, t),
                            M++;
                    }),
                    w(u[f ? 0 : 1])
                        .attr("lay-ym", M - 8 + "-" + T[1])
                        .html(b + p + " - " + (M - 1 + p));
            } else if ("month" === e)
                w.each(new Array(12), function (e) {
                    var i = w.elem("li", { "lay-ym": e }),
                        s = { year: T[0], month: e };
                    e + 1 == T[1] && w(i).addClass(o),
                        (i.innerHTML = r.month[e] + (f ? "月" : "")),
                        d.appendChild(i),
                        T[0] < n.firstDate.year ? (s.date = a.min.date) : T[0] >= n.firstDate.year && (s.date = a.max.date),
                        n.limit(w(i), s, t);
                }),
                    w(u[f ? 0 : 1])
                        .attr("lay-ym", T[0] + "-" + T[1])
                        .html(T[0] + p);
            else if ("time" === e) {
                var E = function () {
                    w(d)
                        .find("ol")
                        .each(function (e, a) {
                            w(a)
                                .find("li")
                                .each(function (a, i) {
                                    n.limit(
                                        w(i),
                                        [{ hours: a }, { hours: n[x].hours, minutes: a }, { hours: n[x].hours, minutes: n[x].minutes, seconds: a }][e],
                                        t,
                                        [["hours"], ["hours", "minutes"], ["hours", "minutes", "seconds"]][e]
                                    );
                                });
                        }),
                        a.range || n.limit(w(n.footer).find(g), n[x], 0, ["hours", "minutes", "seconds"]);
                };
                a.range ? n[x] || (n[x] = { hours: 0, minutes: 0, seconds: 0 }) : (n[x] = i),
                    w.each([24, 60, 60], function (e, t) {
                        var a = w.elem("li"),
                            i = ["<p>" + r.time[e] + "</p><ol>"];
                        w.each(new Array(t), function (t) {
                            i.push("<li" + (n[x][C[e]] === t ? ' class="' + o + '"' : "") + ">" + w.digit(t, 2) + "</li>");
                        }),
                            (a.innerHTML = i.join("") + "</ol>"),
                            d.appendChild(a);
                    }),
                    E();
            }
            if ((y && h.removeChild(y), h.appendChild(d), "year" === e || "month" === e))
                w(n.elemMain[t]).addClass("laydate-ym-show"),
                    w(d)
                        .find("li")
                        .on("click", function () {
                            var r = 0 | w(this).attr("lay-ym");
                            if (!w(this).hasClass(s)) {
                                if (0 === t) (i[e] = r), l && (n.startDate[e] = r), n.limit(w(n.footer).find(g), null, 0);
                                else if (l) n.endDate[e] = r;
                                else {
                                    var c = "year" === e ? n.getAsYM(r, T[1] - 1, "sub") : n.getAsYM(T[0], r, "sub");
                                    w.extend(i, { year: c[0], month: c[1] });
                                }
                                "year" === a.type || "month" === a.type
                                    ? (w(d)
                                          .find("." + o)
                                          .removeClass(o),
                                      w(this).addClass(o),
                                      "month" === a.type && "year" === e && ((n.listYM[t][0] = r), l && (n[["startDate", "endDate"][t]].year = r), n.list("month", t)))
                                    : (n.checkDate("limit").calendar(), n.closeList()),
                                    n.setBtnStatus(),
                                    a.range || n.done(null, "change"),
                                    w(n.footer).find(D).removeClass(s);
                            }
                        });
            else {
                var S = w.elem("span", { class: v }),
                    k = function () {
                        w(d)
                            .find("ol")
                            .each(function (e) {
                                var t = this,
                                    a = w(t).find("li");
                                (t.scrollTop = 30 * (n[x][C[e]] - 2)),
                                    t.scrollTop <= 0 &&
                                        a.each(function (e, n) {
                                            if (!w(this).hasClass(s)) return (t.scrollTop = 30 * (e - 2)), !0;
                                        });
                            });
                    },
                    H = w(c[2]).find("." + v);
                k(),
                    (S.innerHTML = a.range ? [r.startTime, r.endTime][t] : r.timeTips),
                    w(n.elemMain[t]).addClass("laydate-time-show"),
                    H[0] && H.remove(),
                    c[2].appendChild(S),
                    w(d)
                        .find("ol")
                        .each(function (e) {
                            var t = this;
                            w(t)
                                .find("li")
                                .on("click", function () {
                                    var r = 0 | this.innerHTML;
                                    w(this).hasClass(s) ||
                                        (a.range ? (n[x][C[e]] = r) : (i[C[e]] = r),
                                        w(t)
                                            .find("." + o)
                                            .removeClass(o),
                                        w(this).addClass(o),
                                        E(),
                                        k(),
                                        (n.endDate || "time" === a.type) && n.done(null, "change"),
                                        n.setBtnStatus());
                                });
                        });
            }
            return n;
        }),
        (T.prototype.listYM = []),
        (T.prototype.closeList = function () {
            var e = this;
            e.config;
            w.each(e.elemCont, function (t, n) {
                w(this)
                    .find("." + m)
                    .remove(),
                    w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show");
            }),
                w(e.elem)
                    .find("." + v)
                    .remove();
        }),
        (T.prototype.setBtnStatus = function (e, t, n) {
            var a,
                i = this,
                r = i.config,
                o = w(i.footer).find(g),
                d = r.range && "date" !== r.type && "time" !== r.type;
            d &&
                ((t = t || i.startDate),
                (n = n || i.endDate),
                (a = i.newDate(t).getTime() > i.newDate(n).getTime()),
                i.limit(null, t) || i.limit(null, n) ? o.addClass(s) : o[a ? "addClass" : "removeClass"](s),
                e && a && i.hint("string" == typeof e ? l.replace(/日期/g, e) : l));
        }),
        (T.prototype.parse = function (e, t) {
            var n = this,
                a = n.config,
                i = t || (e ? w.extend({}, n.endDate, n.endTime) : a.range ? w.extend({}, n.startDate, n.startTime) : a.dateTime),
                r = n.format.concat();
            return (
                w.each(r, function (e, t) {
                    /yyyy|y/.test(t)
                        ? (r[e] = w.digit(i.year, t.length))
                        : /MM|M/.test(t)
                        ? (r[e] = w.digit(i.month + 1, t.length))
                        : /dd|d/.test(t)
                        ? (r[e] = w.digit(i.date, t.length))
                        : /HH|H/.test(t)
                        ? (r[e] = w.digit(i.hours, t.length))
                        : /mm|m/.test(t)
                        ? (r[e] = w.digit(i.minutes, t.length))
                        : /ss|s/.test(t) && (r[e] = w.digit(i.seconds, t.length));
                }),
                a.range && !e ? r.join("") + " " + a.range + " " + n.parse(1) : r.join("")
            );
        }),
        (T.prototype.newDate = function (e) {
            return (e = e || {}), new Date(e.year || 1, e.month || 0, e.date || 1, e.hours || 0, e.minutes || 0, e.seconds || 0);
        }),
        (T.prototype.setValue = function (e) {
            var t = this,
                n = t.config,
                a = t.bindElem || n.elem[0],
                i = t.isInput(a) ? "val" : "html";
            return "static" === n.position || w(a)[i](e || ""), this;
        }),
        (T.prototype.stampRange = function () {
            var e,
                t,
                n = this,
                a = n.config,
                i = w(n.elem).find("td");
            if ((a.range && !n.endDate && w(n.footer).find(g).addClass(s), n.endDate))
                return (
                    (e = n.newDate({ year: n.startDate.year, month: n.startDate.month, date: n.startDate.date }).getTime()),
                    (t = n.newDate({ year: n.endDate.year, month: n.endDate.month, date: n.endDate.date }).getTime()),
                    e > t
                        ? n.hint(l)
                        : void w.each(i, function (a, i) {
                              var r = w(i).attr("lay-ymd").split("-"),
                                  s = n.newDate({ year: r[0], month: r[1] - 1, date: r[2] }).getTime();
                              w(i).removeClass(u + " " + o),
                                  (s !== e && s !== t) || w(i).addClass(w(i).hasClass(y) || w(i).hasClass(f) ? u : o),
                                  s > e && s < t && w(i).addClass(u);
                          })
                );
        }),
        (T.prototype.done = function (e, t) {
            var n = this,
                a = n.config,
                i = w.extend({}, n.startDate ? w.extend(n.startDate, n.startTime) : a.dateTime),
                r = w.extend({}, w.extend(n.endDate, n.endTime));
            return (
                w.each([i, r], function (e, t) {
                    "month" in t && w.extend(t, { month: t.month + 1 });
                }),
                (e = e || [n.parse(), i, r]),
                "function" == typeof a[t || "done"] && a[t || "done"].apply(a, e),
                n
            );
        }),
        (T.prototype.choose = function (e) {
            var t = this,
                n = t.config,
                a = n.dateTime,
                i = w(t.elem).find("td"),
                r = e.attr("lay-ymd").split("-"),
                l = function (e) {
                    new Date();
                    e && w.extend(a, r), n.range && (t.startDate ? w.extend(t.startDate, r) : (t.startDate = w.extend({}, r, t.startTime)), (t.startYMD = r));
                };
            if (((r = { year: 0 | r[0], month: (0 | r[1]) - 1, date: 0 | r[2] }), !e.hasClass(s)))
                if (n.range) {
                    if (
                        (w.each(["startTime", "endTime"], function (e, n) {
                            t[n] = t[n] || { hours: 0, minutes: 0, seconds: 0 };
                        }),
                        t.endState)
                    )
                        l(), delete t.endState, delete t.endDate, (t.startState = !0), i.removeClass(o + " " + u), e.addClass(o);
                    else if (t.startState) {
                        if (
                            (e.addClass(o), t.endDate ? w.extend(t.endDate, r) : (t.endDate = w.extend({}, r, t.endTime)), t.newDate(r).getTime() < t.newDate(t.startYMD).getTime())
                        ) {
                            var d = w.extend({}, t.endDate, { hours: t.startDate.hours, minutes: t.startDate.minutes, seconds: t.startDate.seconds });
                            w.extend(t.endDate, t.startDate, { hours: t.endDate.hours, minutes: t.endDate.minutes, seconds: t.endDate.seconds }), (t.startDate = d);
                        }
                        n.showBottom || t.done(), t.stampRange(), (t.endState = !0), t.done(null, "change");
                    } else e.addClass(o), l(), (t.startState = !0);
                    w(t.footer).find(g)[t.endDate ? "removeClass" : "addClass"](s);
                } else
                    "static" === n.position
                        ? (l(!0), t.calendar().done().done(null, "change"))
                        : "date" === n.type
                        ? (l(!0), t.setValue(t.parse()).remove().done())
                        : "datetime" === n.type && (l(!0), t.calendar().done(null, "change"));
        }),
        (T.prototype.tool = function (e, t) {
            var n = this,
                a = n.config,
                i = a.dateTime,
                r = "static" === a.position,
                o = {
                    datetime: function () {
                        w(e).hasClass(s) || (n.list("time", 0), a.range && n.list("time", 1), w(e).attr("lay-type", "date").html(n.lang().dateTips));
                    },
                    date: function () {
                        n.closeList(), w(e).attr("lay-type", "datetime").html(n.lang().timeTips);
                    },
                    clear: function () {
                        n.setValue("").remove(),
                            r && (w.extend(i, n.firstDate), n.calendar()),
                            a.range && (delete n.startState, delete n.endState, delete n.endDate, delete n.startTime, delete n.endTime),
                            n.done(["", {}, {}]);
                    },
                    now: function () {
                        var e = new Date();
                        w.extend(i, n.systemDate(), { hours: e.getHours(), minutes: e.getMinutes(), seconds: e.getSeconds() }),
                            n.setValue(n.parse()).remove(),
                            r && n.calendar(),
                            n.done();
                    },
                    confirm: function () {
                        if (a.range) {
                            if (!n.endDate) return n.hint("请先选择日期范围");
                            if (w(e).hasClass(s)) return n.hint("time" === a.type ? l.replace(/日期/g, "时间") : l);
                        } else if (w(e).hasClass(s)) return n.hint("不在有效日期或时间范围内");
                        n.done(), n.setValue(n.parse()).remove();
                    },
                };
            o[t] && o[t]();
        }),
        (T.prototype.change = function (e) {
            var t = this,
                n = t.config,
                a = n.dateTime,
                i = n.range && ("year" === n.type || "month" === n.type),
                r = t.elemCont[e || 0],
                o = t.listYM[e],
                s = function (s) {
                    var l = ["startDate", "endDate"][e],
                        d = w(r).find(".laydate-year-list")[0],
                        c = w(r).find(".laydate-month-list")[0];
                    return (
                        d && ((o[0] = s ? o[0] - 15 : o[0] + 15), t.list("year", e)),
                        c && (s ? o[0]-- : o[0]++, t.list("month", e)),
                        (d || c) &&
                            (w.extend(a, { year: o[0] }),
                            i && (t[l].year = o[0]),
                            n.range || t.done(null, "change"),
                            t.setBtnStatus(),
                            n.range || t.limit(w(t.footer).find(g), { year: o[0] })),
                        d || c
                    );
                };
            return {
                prevYear: function () {
                    s("sub") || (a.year--, t.checkDate("limit").calendar(), n.range || t.done(null, "change"));
                },
                prevMonth: function () {
                    var e = t.getAsYM(a.year, a.month, "sub");
                    w.extend(a, { year: e[0], month: e[1] }), t.checkDate("limit").calendar(), n.range || t.done(null, "change");
                },
                nextMonth: function () {
                    var e = t.getAsYM(a.year, a.month);
                    w.extend(a, { year: e[0], month: e[1] }), t.checkDate("limit").calendar(), n.range || t.done(null, "change");
                },
                nextYear: function () {
                    s() || (a.year++, t.checkDate("limit").calendar(), n.range || t.done(null, "change"));
                },
            };
        }),
        (T.prototype.changeEvent = function () {
            var e = this;
            e.config;
            w(e.elem).on("click", function (e) {
                w.stope(e);
            }),
                w.each(e.elemHeader, function (t, n) {
                    w(n[0]).on("click", function (n) {
                        e.change(t).prevYear();
                    }),
                        w(n[1]).on("click", function (n) {
                            e.change(t).prevMonth();
                        }),
                        w(n[2])
                            .find("span")
                            .on("click", function (n) {
                                var a = w(this),
                                    i = a.attr("lay-ym"),
                                    r = a.attr("lay-type");
                                i && ((i = i.split("-")), (e.listYM[t] = [0 | i[0], 0 | i[1]]), e.list(r, t), w(e.footer).find(D).addClass(s));
                            }),
                        w(n[3]).on("click", function (n) {
                            e.change(t).nextMonth();
                        }),
                        w(n[4]).on("click", function (n) {
                            e.change(t).nextYear();
                        });
                }),
                w.each(e.table, function (t, n) {
                    var a = w(n).find("td");
                    a.on("click", function () {
                        e.choose(w(this));
                    });
                }),
                w(e.footer)
                    .find("span")
                    .on("click", function () {
                        var t = w(this).attr("lay-type");
                        e.tool(this, t);
                    });
        }),
        (T.prototype.isInput = function (e) {
            return /input|textarea/.test(e.tagName.toLocaleLowerCase());
        }),
        (T.prototype.events = function () {
            var e = this,
                t = e.config,
                n = function (n, a) {
                    n.on(t.trigger, function () {
                        a && (e.bindElem = this), e.render();
                    });
                };
            t.elem[0] &&
                !t.elem[0].eventHandler &&
                (n(t.elem, "bind"),
                n(t.eventElem),
                w(document)
                    .on("click", function (n) {
                        n.target !== t.elem[0] && n.target !== t.eventElem[0] && n.target !== w(t.closeStop)[0] && e.remove();
                    })
                    .on("keydown", function (t) {
                        13 === t.keyCode && w("#" + e.elemID)[0] && e.elemID === T.thisElem && (t.preventDefault(), w(e.footer).find(g)[0].click());
                    }),
                w(window).on("resize", function () {
                    return !(!e.elem || !w(r)[0]) && void e.position();
                }),
                (t.elem[0].eventHandler = !0));
        }),
        (n.render = function (e) {
            var t = new T(e);
            return a.call(t);
        }),
        (n.getEndDate = function (e, t) {
            var n = new Date();
            return n.setFullYear(t || n.getFullYear(), e || n.getMonth() + 1, 1), new Date(n.getTime() - 864e5).getDate();
        }),
        (window.lay = window.lay || w),
        e
            ? (n.ready(),
              layui.define(function (e) {
                  (n.path = layui.cache.dir), e(i, n);
              }))
            : "function" == typeof define && define.amd
            ? define(function () {
                  return n;
              })
            : (function () {
                  n.ready(), (window.laydate = n);
              })();
})();
